/*
 * @Author: zhaoxiangyu@
 * @Date: 2021-11-05 11:01:22
 * @LastEditors: 647355931@qq.com
 * @LastEditTime: 2021-11-05 11:20:07
 * @Description: file content
 */
// 处理data

import observe from "./observe.js";
import proxy from "./proxy.js";

export default function initData(vm) {
  const { data } = vm.$options;
  let _data = {};
  // 如果data存在
  if (data) {
    // 将vue得值赋值给原型链上的_data和_data
    _data = vm._data = typeof data === "function" ? data() : data;
  }

  // 代理 使其支持 this.xxx
  for (const key in _data) {
    proxy(vm, "_data", key);
  }
  // 设置完代理后设置响应式
  observe(vm._data)
}
